/**
 * @defgroup TestFileScanner 关于Java输入机制的例子
 * @author 李焕帅
 * @version 0.1
 * @date 01/08/2012
 * @{
 */
/**
 * @name 包定义
 * @{
 */

package indd.lihs.basic.javabasictester.io;

import java.io.*;
import java.util.*;
import indd.lihs.basic.exceptions.*;

/** @}*/
// 包定义

/**
 * @name 测试类型定义
 * @{
 */
public class TestFileScanner
{
    /**
     * 主函数
     * @param[in] args 参数字符串数组
     * @return void
     * @note 某个方法可能抛出某种异常,但其中没有定义相应的捕获代码.这时如果抛出,\n
     * 则系统直接退出该方法,并将异常发回给调用者其中, 如果父类的方法没有声明某种必\n
     * 检异常,子类进行方法覆盖时,也不能声明
     */
    public static void main(String[] args)
    {
        try
        {
            File file = new File("score.txt");
            if (file.exists()) throw new FileExistedException("score.txt");
           
            //输出到文件
            PrintWriter pw = new PrintWriter(file); 
            pw.println("lihuanshuai 99.9");
            pw.println("zhaoxin 97");
            pw.println("吴三 89.9");
            pw.close();

            //从文件输入
            Scanner fin = new Scanner(file);
            String name;
            double score;
            while (fin.hasNext())
            {
                name = fin.next();
                score = fin.nextDouble();
                System.out.println(name + " 的成绩是 " + score);
            }
            fin.close();
        }
        catch (FileExistedException ex)
        {
            System.out.println(ex);
            ex.printStackTrace();
        }
        catch (FileNotFoundException ex)
        {
            System.out.println(ex);
            ex.printStackTrace();
        }
    }
}

/** @}*/ // 异常类定义

/** @}*/ // 模块定义
